package com.bluestar.tools.module.footerview;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bluestar.tools.R;
import com.bluestar.tools.common.base.BaseActivity;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;

import java.util.ArrayList;
import java.util.List;

import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

/**
 * @author : lifei
 * 创建时间： 20-1-17
 * 更改时间： 20-1-17
 * Email : allen.lee723@qq.com
 * @version :
 * Description：
 */
public class FooterViewActivity extends BaseActivity {

    private QMUITopBarLayout mTopbar;
    private RecyclerView mRecyclerView;
    private FooterAdapter mFooterAdapter;
    private View mFooterView;

    @Override
    protected int getLayout() {
        return R.layout.activity_footerview;
    }

    @Override
    protected void initTopbar() {
        mTopbar = findViewById(R.id.topbar);
        mTopbar.setTitle(R.string.goto_footer_view).setTextColor(ContextCompat.getColor(this, R.color.qmui_config_color_white));
        mTopbar.setBackgroundColor(ContextCompat.getColor(this, R.color.qmui_btn_blue_bg));
        mTopbar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }

    @Override
    protected void initView(Bundle savedInstanceState) {
        mRecyclerView = findViewById(R.id.footerview_recyclerView);

        List<FooterBean> footerList = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            FooterBean footerBean = new FooterBean(R.mipmap.ic_launcher_round, "这是第 " + (i + 1) + " 行");
            footerList.add(footerBean);
        }
        mFooterAdapter = new FooterAdapter(footerList);

        LinearLayoutManager manager = new LinearLayoutManager(this);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerView.setLayoutManager(manager);
        // footerView
        mFooterView = LayoutInflater.from(this).inflate(R.layout.item_footer_view,
            (ViewGroup) mRecyclerView.getParent(), false);
        mFooterAdapter.addFooterView(mFooterView);
        mRecyclerView.setAdapter(mFooterAdapter);

        // 在 onCreate 中获取到的宽高是0，可以通过 view.post() 的方式在 post 方法里面获取到宽高。
        mRecyclerView.post(new Runnable() {
            @Override
            public void run() {
                int recyclerViewHeight = mRecyclerView.getHeight();
                // int footerViewTop = mFooterView.getTop();
                // 由于 BaseQuickAdapter 的 addFooterView 方法是将 footerView 添加到一个 LinearLayout 里面，
                // 然后再把这个 LinearLayout 添加到 RecyclerView 的底部。所以在这里算 footerView 顶部到 RecyclerView 的顶部距离时，
                // 就要先得到这个 footerView 的 父布局 LinearLayout，然后再通过 getTop 方法就可以得到 top 值。
                // ListView 的 BaseAdapter 自带 addFooterView，此方法里面没有嵌套 ViewGroup,可以通过 footerView.getTop() 直接得到 top 值。
                int footerViewTop = mFooterAdapter.getFooterLayout().getTop();
                int footerViewHeight = mFooterView.getHeight();
                if (recyclerViewHeight - footerViewTop > footerViewHeight) {
                    mFooterView.getLayoutParams().height = recyclerViewHeight - footerViewTop;
                }
            }
        });
    }

    private void aVoid() {

    }
}
